package init

import (
	"github.com/astaxie/beego/orm"
	_ "github.com/mattn/go-sqlite3"
	"log"
	"os"
	"short_domain/models"
)

func init() {
	path, err := os.Getwd()
	if err != nil {
		log.Fatal("get base path fail ", err)
	}

	// 1. 注册数据驱动, mysql / sqlite3 / postgres 这三种是默认已经注册过的，所以可以无需设置
	err = orm.RegisterDriver("sqlite3", orm.DRSqlite)
	if err != nil {
		log.Fatalln("RegisterDriver fail!", err)
	}
	// 2. 注册数据库, ORM必须注册一个别名为 default 的数据库，作为默认使用
	err = orm.RegisterDataBase("default", "sqlite3", path+"/data/domain.db")

	if err != nil {
		log.Fatalln("RegisterDataBase fail!", err)
	}
	// 3. 注册模型
	orm.RegisterModel(new(models.Domain))
	// 4. 自动创建表 参数二为是否开启创建表   参数三是否更新表
	err = orm.RunSyncdb("default", false, true)
	if err != nil {
		log.Fatalln("RegisterDataBase fail!", err)
	}
}
